Direct numerical control system

ABSTRACT

A control system for a plurality of numerically controlled machine tools having a coarse interpolator for generating from parametric data a plurality of signals defining the absolute magnitude of vector components along two orthogonal axes of a plurality of straight line segments closely approximating a mathematical curve defined by the parametric data. Multiplex hardware is provided for time-sharing the coarse interpolator among the plurality of machine tools, a digital computer supplies the coarse interpolator with the parametric data and acts as high-speed buffer storage to assist in time-sharing the coarse interpolator, and data link equipment is provided for transmitting signals between the controls of the plurality of the machine tools and the coarse interpolator or the computer.

United States Patent 1191 Klein I 1March 13, 1973 Inventor:

Assignee:

Filed:

Appl. No.: 73,567

John Klein, Fairview Park, Ohio The Warner & Swasey Company, Cleveland, Ohio Sept. 18, 1970 Primary Examiner--Malcolm A. Morrison Assistant Examiner-James F. Gottman Attrney-Yount and Tarolli [57] ABSTRACT A control system for a plurality of numerically controlled machine tools having a coarse interpolator for generating from parametric data a plurality of signals defining the absolute magnitude of vector components [52] 11.8. Cl. ..235/151.11, 235/152, 318/569, along two orthogonal axes of a plurality of straight line 318/573 segments closely approximating a mathematical curve [51] Int. Cl. ..Go6f 15/46 defined by the parametric data. Multiplex hardware is [58] Field of Search 235/1511 1, 152; 318/569, 573 provided for time-sharing the coarse interpolator among the plurality of machine tools, a digital com- [56] References Cited puter supplies the coarse interpolator with the parametric data and acts as high-speed buffer storage UNITED STATES PATENTS to assist in time-sharing the coarse interpolator, and 3,573,738 4 1971 Bottles et a1 ..235/151.11 x data link equipment is Provided for transmitting 3,416,056 12/1968 M k t L 235 151 11x signals between the controls of the plurality of the 3,254,203 5/1966 Kveim ..235/l.11 X machine tools and the coarse interpolator or the com- 3,465,298 9/1969 Duke et al. ..3l8/573 X puter, 3,473,157 10/1969 Little et al. ..3l8/573 X 3,544,972 12/1970 Trousdale ..235/151.11 X 9 Claims, 21 Drawing Figures 22 MEOAY 2/ 23 i i a? i TVPHVI/TER COMPUTER 071/5? COMPUTER 1 w fme MUL TIP]. EX HAEDWARE 474 LIA/K 3207 KEYJOd/ZD AND DISPLAY u/v/r a. as a was? 3/6 "m w aze GGWfkOL cox/re cow-m4 cow-n4 MICH/A/ MACH/ME mam/E MAL /M5 TOOL I 306 7002 m0; m0

PATENTEDHARI 3l973 sum 0 10F 13 FIZ FIGS

o A a 10 A 4 In I M Ic C a [C #5 M K6 lNl/E/VTOR JOHN KLE/A/ 5 ATTORNEYS PATENTFDHAR 1 31975 sum 03 [1F 13 FIG .5

AXZ

FIG .6

//VL E/V 7'01? JOHN K L E//\/ JOHN KLE/A/ 5y ATTORNEYS sum on HF 13 PATENTEUHARI 31973 PATENTEDHAR 1 31975 SHEET 06 [1F 13 LWMDUWQ mi. QQS

PATENTEDHARI 3191a sum 09 [1F 13 READ 0/! TA DATA 5/(. CH. 1/2.?

a 2 s m w 2 ma 5 a 2 w a 3 R O 2 W e A Z 0 6 DIRECT NUMERICAL CONTROL SYSTEM The present invention relates to a control system for a plurality of numerically controlled machine tools, particularly a system which utilizes a central data processor to control the machines in accordance with data stored in the processor.

One problem in controlling a plurality of machine tools from a central data processor, such as a general purpose computer, is that the number of machines which can be controlled by the processor has heretofore been limited if the processor is used to interpolate, from parametric data, a binary signal defining the absolute magnitude of vector components along orthogonally related axes for causing a movable member of the machine tool, such as the cutting tool, to move along a path which approximates a mathematical curve defined by the parametric data. If this interpolation is not done in the central processor, each machine tool must be provided with an interpolator capable of generating the signals for defining the absolute magnitude of the vector components necessary to move the member, such as a tool, through a plurality of straight line segments which approximate a desired path.

Accordingly, an object of the present invention is to provide a new and improved control system for con trolling a plurality of machine tools from a computer which has programs stored therein for producing different workpieces in which a high speed special purpose data processor performs circular interpolation under the control of the computer to relieve the computer of this normally time consuming task and to eliminate the need for such an interpolator ineach machine.

A still further object of the present invention is to provide a new and improved control system as in the preceding object in which the high speed special purpose data processor is also utilized to perform linear interpolation to move the movable member of the machine tool along a linear path.

Another object of the present invention is to provide a new and improved control system for a plurality of machine tools in which a data processing operation, such as circular interpolation, which limits the number of machines which can be controlled by a main central data processor that stores command to be executed by the machines and directs the operation of the machines, is done by a central special purpose data processor under the control of the main processor with the special purpose processor operating at a rate such that the number of machines which the main central data processor can control is significantly increased with the main central data processor preferably acting as'a high-speed buffer storage for the central special purpose data processor.

A further object of the present invention is to provide a new and improved control system for controlling a plurality of machine tools from a central processor having commands stored therein for effecting desired operations of machine tools and wherein interpolation for generating binary signals indicating the absolute magnitude of vector components for moving a movable member along a plurality of straight line segments to follow or closely approximate a mathematical curve defined by parametric data stored in a main central processor for controlling the machines is performed by a central high-speed special purpose data processor operating at higher clock speeds than the main processor and central processor in accordance with data supplied from the main central data processor with special purpose processor computing the straight line segments one segment at a time and transmitting the information to the machine tool for generating the segment and awaiting a request for more information from the machine and main central processor before computing the absolute magnitude of the vector components for the next segment, the special purpose processor utilizing the central data processor as a buffer storage for information relating to the genration of the remaining segments thereby freeing the special purpose processor for use to compute segment components for other machine tools while commands for a computed segment is being executed by a machine.

A further object of the present invention is to provide a new and improved system for effecting circular interpolation for controlling the path of a movable member of a machine tool whereby information which must be stored and supplied to effect the interpolation is minimized and whereby the interpolation may be done at a high rate of speed to obtain a plurality of signals which define the absolute magnitude of the vector components of a plurality of straight line segments closely approximating a mathematical curve defined by stored parametric data.

A still further object of the present invention is to provide a new and improved control system for a machine tool in which circular or linear interpolation for providing a plurality of signals defining the absolute magnitude of vector components of a plurality of straight line segments closely approximating a mathematical curve, such as a circle, is performed by summing increments representing displacements with respect to orthogonal axes of the vector components.

Further objects of the present invention will be apparent from the following detail description of a specific form of the preferred embodiment in which:

FIG. I is a geometric illustration of a portion of a circle arc and X and Z coordinates:

FIG. 2 is a geometric illustration of a portion of the circle arc of FIG. 1 translated to l and K coordinates;

FIG. 3 is an enlarged geometric illustration of the portion of the circle arc of FIG. 2 showing the steps of graphical integration to produce the portion of the circle arc;

FIG. 4 is a greatly enlarged geometric illustration of a portion of a circle arc illustrating how that circle arc may be generated step-by'-step;

FIG. 5 is an illustration of a circle are showing how chord length varies with constant increments in one axis;

FIG. 6 is a geometric illustration of a portion of a circle are showing how the relative displacements in two coordinates axes vary with constant chord length;

FIG. 7 is a schematic block diagram illustrating the machine tool control system of the present invention;

FIG. 8 is a schematic block diagram showing in greater detail the computer, multiplex hardware, and coarse interpolator of the present invention;

FIG. 9 is a schematic block diagram showing the digital clock of the present invention;

FIG. A, 10B, 10C, 10D and 10E are graphical illustrations of the waveforms of the signals produced by the digital clock;

FIG. 11 is a schematic logic diagram showing the update request flags, the device counter and up-date request detector, the translator, the address register, the word counter and the data-steering gates;

FIG. 12 is a schematic logic diagram of the dataselect gates;

FIG. 13 is a schematic block diagram of the arithmetic portion of the coarse interpolator;

FIG. 14 is a schematic logic diagram of the steering logic portion of the coarse interpolator, the L encoder, and the L register;

FIG. 15 is a graphical representation of a circle are generated by the coarse interpolator of the present invention;

FIG. 16 is a schematic block diagram of the data length at the central control for one of the machine tools of the system; and

FIG. 17 is a partial diagram ofa machine tool control and servo drives.

While the present invention is susceptible of various forms and modifications and of use to control various machines, e.g., a drafting machine, it is particularly useful in controlling machines and will be described with reference thereto.

In the field of numerical control of machine tools, it is desirable to minimize or abbreviate the length and number of commands, or input data, required to direct a cutting tool or other device over a desired path. For example, nearly everyone is familiar with the process of plotting a curve from a mathematical expression. The more points that are plotted over a given range of values, the more accurately the plotted curve will follow the true curve. Thus, the greater the accuracy, the more data required. For the desired accuracy, 10,000 coordinate dimensions may be required in an inch of travel. Where, however, the desired curve may be described by a relatively simple mathematical expression, it is possible to greatly reduce the quantity of input data to the control system. This is accomplished by building the control system so that it can generate a desired curve in response to input data consisting only of parameters of the desired curve rather than a large number of coordinate dimensions.

Control systems capable of such curve generation are known in the art and are generally referred to as continuous path contouring control systems. Two mathematical curves are commonly employed; the straight line and the circle arc, the latter of which may be generated in either the clockwise or counterclockwise direction.

The circuitry for generating circle arcs is somewhat more complex than that required to generate straight lines. Therefore, where several machine tools are to be controlled by a central control facility, it is advantageous to time share the circular interpolating circuitry. This has not been possible in prior art control systems because interpolation has been carried out in real time, thus requiring a dedicated interpolator for each pair of axes.

The present invention separates the interpolator function between two circuit means, a coarse interpolator and a fine interpolator. The coarse interpolator is capable of either linear or circular interpolation and is time shared among a plurality of machine tool axis pairs. The fine interpolator is capable of linear interpolation only and one fine interpolator is dedicated to each machine tool axis pair served by the coarse interpolator.

Briefly, the coarse interpolator generates a series of displacement commands that are serially executed by the fine interpolator. The fine interpolator operates in real time and therefore operates at a clock frequency proportional to tool feedrate. The coarse interpolator operates at a clock rate manytimes higher than the maximum feedrate of any axis pair it serves, and therefore is capable of generating displacement commands for a plurality of axis pairs while one axis pair is being moved in accordance with a previously generated displacement command.

Freeing the coarse interpolator from a clock rate dependent upon tool feedrate permits the use of circuitry that provides more accuracy than rate multipliers and far greater speed than digital differential analyzers. The terminal coordinates of each linear displacement com mand generated by the coarse interpolator will never be more than one control increment from the true curve. Furthermore, the maximum deviation from the true curve of the linear displacement commanded by the coarse interpolator may be limited to any desired distance.

For a complete understanding of the functions of the present invention, the mathematical derivation and step-by-step generation of a circular arc will first be discussed. This will then be related to the capabilities of the control system, and finally, the nature, description, and functions of the apparatus will be presented.

The equation of a circle of radius r in-a cartesian coordinate system in X and Z as shown in FIG. 1 is a) o) where (x,,, z,,) are the coordinates of the center of the circle and r is the radius.

Taking partial derivatives of equation 1 yields 2rdr= 2(x x,,) d (x x,,) 2(z Z0) d (Z Z0) and, because x, and 2 are constants, d1: and dz are zero. Therefore,

and finally,

rdr Id! KdK Integrating equation 5 yields the indefinite integral where C is the constant of integration. C, of course, 5

which will be recognized as the equation of a circle of radius r having its center at the origin of a cartesian coordinate system in I and K. Therefore, step-by-step integration of equation 5 will generate a circle arc of the desired shape. It then would only be necessary to re-translate the axes to properly locate the arc in the X, Z coordinate system. This might be required in an absolute positioning system, but probably would not be required in an incremental positioning system. These terms are well vunderstood by those skilled in the art and it will-be appreciated that the letters chosen to represent the several variables and constants are the ones generally used in the field of numerical control.

By definition, the radius r constant, and therefore, dr= 0. Thus, for points on the true circle arc, dr= and equation can be re-written and, solving equation 6 for dK,

dK=I/K(dl) (7) The physical interpretation of equation 7 is that if from a point on the true curve a movement dl is made in the I-axis, it is necessary to move a distance dK equal to UK ((11) in the K-axis to get back on the true curve. This is the basis for graphical or step-by-step integration. From an initial point (I,, K,), the independent variable I is incremented or decremented an amount dl, which is chosen small enough to provide the desired accuracy. This is illustrated in FIG. 3 which shows a portion of the circle defined by equation 67 It will be seen from FIG. 3 that the magnitude of d! has been made constant. That is, dI,= d1, dl,. The magnitude of dK, however, is a function of I and K as well as ofdI. Therefore, the magnitude of dK will depend upon the particular point on the are being generated. Thus, in step-bystep fashion, with reference to FIG. 3, and starting at point I, on the arc to be generated, we move a distance d] to the left. Following convention, this is the negative direction, and therefore d1 dI,. Then solving equation 7 for dK,

dK u/ o) a) (141/ K0) (dla) This brings us to point P, on the curve. Again we move a distance d! =di,, to the left, and solving for dk,

It will be seen that I, I, dl, I, I, dI, I I, d!

and so on.

Also, K, K, dK,, K, K, dK,, K, K, dK and so' on. Thus, to carry out the step-by-step integration of equation 7, we move an increment dI, calculate the new value of I, calculate the value of dK at that point on the arc, and then calculate the new value of K, whereupon we are ready to repeat the process to find the next point on the curve.

In order to carry out the above described step-bystep integration by use of a numerical control system, it is necessary to generate both a quotient, (UK), and a product, (I/K) (dI). This is done in presently known numerical control systems which are either pulse rate multipliers or a digital differential analyzer along with cross coupled presettable counter/registers. Some modifications of the above-described step-by-step method, however, obviate the generation of the quotient and product, and greatly simplify the control system required to generate the desired curve.

As stated earlier, for all points on the true arc, dr 0. When performing a step-by-step integration, however, r cannot be maintained an exact constant and therefore, generally dr will be non-zero. The larger dr becomes, the farther we are from the true curve we are attempting to generate. Therefore, dr may be thought of as an error indicator. The smaller we maintain dr, the more accurately we generate the curve.

The circuitry that would be required to generate dr throughout the step-by-step integration could be quite complex. Fortunately, because we do not need to know the actual value of dr, but only need to minimize dr, another means is available. This results from the fact that dr is very small compared to r. Therefore, we may treat, r as being composed of two parts, a constant part, r,, and a variable part, dr. Thus, we can write r"= r, i dr The product rdr may then be written as rdr= (r, i dr) dr= r,dri (dr) rdr r,dr (9) Thus, it will be seen that rdr is substantially directly proportional to dr for all values we will be considering (i.e. where dr r) and therefore, minimizing dr will also minimize rdr. Therefore, rdr may be used as an indicator of what to do to minimize dr. The use of rdr as an error quantity to be minimized enables the carrying out of the step-by-step integration by use of equation 5 as will now be described.

Starting at a point P, as shown in FIG. 4 we may move an increment d1 dl in the I-axis direction. Since I I, and K K, at point P,, which is assumed to be on the true curve, we are now at a point P,, where I I =I, dl and K K,. From equation 7 it can be seen that we must move a distance in the K-axis direction to get back on'the true curve. Because of the physical limitations of the machine, however, we can move only integral multiples of d in the K-axis direction. Therefore, unless (I,/K,) is an integer, we must either stop short of the true curve or go beyond it. It is desirable, of course to stop as near to the true curve as possible. This could be accomplished by monitoring the value of rdr, which, as noted above, may be used as an indicator of how well dr is being minimized. Such monitoring and comparing circuitry could become quite complex, and may be obviated by accepting a very slight increase in the average value of dr. That is, rather than concern ourselves with precisely minimizing dr, we will take whatever action is necessary to drive rdr toward zero at each step of the integration. To do this, we need only determine the sign of dr, or as we have said, rdr.

Referring again to FIG. 4, let us define dr as positive when the point in consideration lies on the outside of the true arc and negative when inside of the true arc. Thus, at point P dr is negative and we may write dr dr, where the subscript 1 indicates the value of dr at point P The error dr, was created by moving the distance dl in the l-axis direction. It can be shown that r (dl)cos 0,, (10) where 0,, is the angle between the direction of motion dl in the I-axis and the radius r at point P, along which dr is directed. Furthermore, it can be shown that the radius r passing through point P, makes the same angle 0,, with the I-axis, and therefore Substituting this expression for cos 0,, into equation 10 we get The value of drat point I may be found by adding ar, to the value of dr at P or dr dr,, +Ar 11 Since dr 0 and we have just solved for Ar we can write Now, both I and r are positive. Therefore, for the example of FIG. 4,

We are limited in movement to incremented steps along the I-axis or K-axis. In order to get back on the true curve, or as nearly so as our system will permit, we must either move in the +1 direction or the +K direction. Because we have just moved in the I direction to go from point P to point P,, we would undo what we have just done to return to P Therefore, we will move in the +K direction. The question then becomes, how far to move in the +K direction. To answer this, let us first move one control increment d1 in the +K direction.

Moving d1 in the +K direction from point P, brings us to point P In so doing, we change the value of K from K, to K, and generate a change in the radius Ar It can be shown that Ar, (d1) sin 0,

where 0, is the angle between the radius r passing through point P, and the I-axis. Sin 0, may also be expressed as Sin 0; K

and substituting this expression for sin 0, into the above equation we get dr,=dr,+Ar 14 Now, if you substitute into equation 14 the values of dr,

and Ar, as given in equations 12 and 13 we get Further steps along the K-axis, each step being d! in length, will bring us to points P P and P in succession. At point P dr may be expressed as dr, dr 4- Ar, Ar, Ar Ar and at point P dr may be expressed as dr dr Ar, Ar Ar, Ar Ar It will be seen that we cross the true curve between point P and point P and that as we do so the sign of dr changes from negative to positive.

From point P it is once again necessary to move in the -I-axis direction to get back on the true curve. Therefore, once more we move a control increment d! in the -I-axis direction to bring us to point P In going from point P to P we cross the true curve again and the sign of dr changes from positive to negative.

From the foregoing, it can be seen that decrementing I when dr is positive generates a negative Ar; and that when dr is negative, incrementing K generates a positive Ar. We can identify the Ar that results from decrementing I as Ar, and the A r that results from incrementing K as Ar,, and write But Ar,=--(I,/r) and Ar (K /r) Therefore m (n+2, all o k=1 0 And because r, constant, we may write '(m+n)= 2 A -FE k Now, if we let dl represent the unit length in our measuring system, we may replace dl with the digit I and write o '(m+n) 2 ll k2 Kk desired. When a circle arc is the true curve, the series of linear displacements commanded by the coarse interpolator will describe chords of segments of the arc. Maximum deviation occurs at the midpoints of the chords. Thus, the shorter the radius of curvature of the arc, the shorter the arc segments must be to maintain a given maximum deviation. Conversely, the longer the radius of curvature of the arc, the longer the arc segments may be made without exceeding the given maximum deviation. Stated another way, the greater the curvature of the arc, the closer spaced must be the data points in order to approximate the true curve within the accuracy desired; i.e. without exceeding the given maximum deviation allowable. Also, it should be noted that spacing between. data points must be measured along the arc, and not in just one of the coordinate axes.

For example, if data points are equally spaced along the X-axis at intervals of A x, as shown in FIG. 5, then the arc distance from P to P, will be much greater than Ax while the distance from I,, to P,, will be nearly equal to Ax. Thus, if the interval at P, is sufficient for the desired accuracy, more data points are used near I, than need be. Conversely, if the interval at P is needed for the required accuracy, then there are insufficient data points near P, to give the required accuracy.

The solution, of course, is to provide for equal data intervals along the are, or in other words, constant chord length between data points. Again, as with the above discussed method of arc generation, the problem is to provide the solution in a form that may readily be carried out by a numerical control system.

Referring to FIG. 6, there is shown a circle arc having three chords A s of equal length. The corresponding incremental displacements A x and A z, however, differ for each chord A s. However, A x and A z, rather than A s, are the parameters that are readily available in the numerical control system.

In order to generate an indication of A s from A x and A z, we employ two mathematical relationships. The first of these is the well known Pythagorean theorem, which stated in terms of the variables Ax, Az, and A s yields I The other mathematical relationship may be stated as It will be seen that this relationship permits us to generate the square of a number by summation, a process, which as noted above, can easily be carried out by a numerical control system. The derivation of the actual process is as follows:

In generating the desired circle arc according to equation 18, I and K are selectively decremented or incremented, as the case may be. From an initial point P,,, where x= x,, z z,,, the coordinates of the generating point will be at any time x x, ndl and z z, mdl,

where n is the number of times we have decremented I and m is the number of times we have incremented K. Again, letting dl be the unit length of our system, we can set dl equal to unity and write x x n and z Z m. Therefore, since x x, Ax and z Z Az, it is apparent that Ax n, and A: n, and it follows that and therefore Therefore, to generate chords of constant length, we merely calculate (As) and then solve equation 22 stepby-step as n and m are incremented. This provides the desired accuracy with the fewest data points, or are segments. Rather than calculate a different (As) for each arc to be generated, although this could be done, the apparatus of the present invention uses for simplicity three discreet values of (As), each covering a range I of arc curvatures. The particular value of (As) is used that will provide the desired accuracy, or as stated earlier, prevent the deviation from the true curve of the commanded linear displacement from exceeding the maximum given deviation allowable.

It should be noted that the foregoing discussion of the mathematical relationships between the several variables that only counter clockwise arc generation in the first quadrant has been illustrated. It will be apparent to persons skilled in the art that by suitable sign changes are generation may be accomplished in any quadrant in either the clockwise or counter-clockwise direction. Also, as will be explained subsequently, straight line generation (linear interpolation) may be carried out by the same apparatus that carries out circle arc generation (circular interpolation).

Referring now to FIG. 7, there is shown a block diagram of a machine tool control system for controlling a plurality of machine tools. The present system has been designed primarily for the control of two-axis and fouraxis turret lathes. However, the system is adaptable for use with milling machines, drilling machines, punch presses, positioning tables, and other machine tools. In fact, different kinds of machine tools may be simultaneously controlled bythe same system.

The control system comprises a digital computer 21 and its related input/output devices, such as a tape reader 22 and a typewriter 23. The digital computer 21 is provided with auxiliary memory 24 which may be of the rotating disc or drum type, and optionally may be linked with another computer 25. Control signals to each of the machine tools are provided by the computer software and a coarse interpolator 26 from part programs describing the various parts to be machined.

Each machine tool 30 is provided with a machine tool control 31 and may optionally be provided with a keyboard and display unit 32. The keyboard and display unit 32 at the machine tool provides substantially the same functions as the typewriter 23 at the computer, but may be restricted by the computer software from calling up certain part programs currently in use on other machine tools. Multiplex hardware 34 coupled to the coarse interpolator 26 and the computer 21 cooperates with the computer software to control the flow of data between the computer central processor unit, the coarse interpolator 26, and the several machine tools 30. Communication between the multiplex hardware 34 and each machine tool control 31 and keyboard and display unit 32 is provided by a data link that time multiplexes the flow of data according to a predetermined priority.

The computer software is written to accept part programs in either the EIA or ASCII standard punched paper tape formats. The part programs are modified by the software and stored in the auxiliary memory 24. Any part program usable on a given machine tool 30 may be activated by typing the proper part program code on the keyboard associated with that machine tool. Typing the proper code at the keyboard causes the desired part program to be read from auxiliary memory 24 into an area of core in the computer 21 set aside for the associated machine tool. From core the software makes the part program available on a block by block basis to the machine tool control 30 and the coarse interpolator 26. Each block of the part program may contain a number of coded commands for the machine tool, for example, feedrate number, spindle speed, turret face and tool offset, etc. as well as the contouring or positioning information. The contouring information comprises a preparatory code identifying the contouring motion (dwell, linear, clockwise arc, counterclockwise arc), the displacements for the two axes involved and, if the motion is circular, the arc center offset dimensions for each axis. In the present system, contouring information is made available to the coarse interpolator 26 and all other information is made available directly to the machine tool control 31 and its associated display 32. For a fuller understanding of how this is accomplished, reference is now made to FIG. 8.

FIG. 8 shows in block diagram form the computer 21, a number of components comprising the multiplex hardware 34, and the coarse interpolator 26. The presently preferred digital computer is a model PDP/S digital computer manufactured by the Digital Equipment Corporation. Other computers, of course, could also be used. The computer has two channels for inputting and outputting data. The first of these is the low speed channel referred to hereinafter as the I/O channel. The 1/0 channel is provided with terminals to read and write twelve bits in parallel, generate a six-bit device code in parallel, accept a one-bit skip request, and serially generate three input/output pulses (lOPl, lOP2, IOP4), each available at a separate terminal. The high speed data channel, sometimes called the data break channel, is provided with terminals to read and write twelve bits of data in parallel, accept a 12-bit address in parallel, accept a one-bit break request, accept a one-bit steering signal, output a one'bit accept pulse, and output a one-bit strobe pulse. Generally speaking, the differences between these two data channels are that the channel is under software control and a skip request will be acknowledged only when the software is in a flag loop checking input and output device, but the data break channel is primarily under the control of outside equipment and a break request instantly stops the clock pulses to the central processor leaving it, as it were, in a state of suspended animation until the break is completedJn the present system, contouring information is handled through the data break channel while all other information is handled through the 1/ channel.

Data flowing from the several machine tool controls 31 and keyboards 32 to the central control is of two different types; contouring information update requests and data for the central processor. Through the data link, an update request operates to set a flip-flop circuit 41, sometimes referred to as an update request flag. An update request flag 4] is provided for each axis pair of each machine tool 30 in the system. Data for the central processor is routed through the data link to a computer input buffer register 43. Each time data is loaded into a computer input buffer register 43 a corresponding flip-flop circuit 44 is set. These flip-flops are called computer input buffer flags. One eight-bit register and one flag comprise the computer input buffer for each machine tool in the system.

All of the set outputs of the computer input buffer flags are connected to the skip request input of the [/0 channel through AND gates 45. Thus, a skip request is initiated whenever any of the computer input buffer flags 44 is set and its associated AND gate is enabled. The software periodically executes a routine that sequentially generates six-bit device codes. These 1 device codes are decoded by a device selector circuit 46. In this circuit, the six-bit device code is decoded to provide separate output lines 47 for each device. Each of the output lines 47 is connected to the AND gate 45 that is associated with the computer input buffer flag of its corresponding device to enable that AND gate when the device code corresponds to that computer input buffer. Thus, when the software generates the device code corresponding to a buffer with its flag set, a skip signal results.

The output lines 47 of the device selector circuit 46 are also connected to computer input data selecting gates 48 and function to connect each computer input buffer register to the 1/0 channel read inputs so long as the corresponding device code is being output by the computer. That is, as the software routine sequentially generates device codes, the corresponding computer input buffers are connected to the [/0 channel read terminals.

No data is read, however, until a skip signal is present. A skip signal causes the data to be read into the computer which then generates an input/output pulse lOP2. Pulse [0P2 is gated by the output lines 47 of the device selector circuit through AND gates 51 to reset the flag of the computer input buffer that has just been read.

The flow of data from the central processor to the several machine tool controls 31 and displays 32 through the 1/0 channel is very similar to the inward flow of data just described. The output lines 47 of the device selector circuitv are also connected to computer output data steering gates 53 as well as to the computer input data selecting gates 48. The computer output data steering gates 53 comprise a plurality of two-input AND gates, each having one input connected to one of the device selector circuit output lines 47, and the 

1. A control system for controlling a plurality of machines to effect movement in each machine of first and second members along orthogonal axes to effect relative motion of a tool and workpiece along desired curves, each machine including means for moving said members along said orthogonal axes in response to component signals repResenting vector components of straight line segments closely approximating portions of said curves with respect to said orthogonal axes, said system comprising data processing means comprising a programmable digital computer having storage means for storing for each of said machines parametric data defining desired curves, an interpolator for generating from parametric data defining a desired curve component signals representing vector components of straight line segments closely approximating a portion of said desired curve and for modifying the parametric data to provide modified parametric data defining the remainder of the desired curve, and means for transferring parametric data for the desired curve from said computer to said interpolator and for transferring said modified parametric data from said interpolator to said computer, and means responsive to a request from one of said machines for effecting a transfer of parametric data defining a desired curve from said computer to said interpolator and for transmitting said component signals to the requesting machine.
 1. A control system for controlling a plurality of machines to effect movement in each machine of first and second members along orthogonal axes to effect relative motion of a tool and workpiece along desired curves, each machine including means for moving said members along said orthogonal axes in response to component signals repResenting vector components of straight line segments closely approximating portions of said curves with respect to said orthogonal axes, said system comprising data processing means comprising a programmable digital computer having storage means for storing for each of said machines parametric data defining desired curves, an interpolator for generating from parametric data defining a desired curve component signals representing vector components of straight line segments closely approximating a portion of said desired curve and for modifying the parametric data to provide modified parametric data defining the remainder of the desired curve, and means for transferring parametric data for the desired curve from said computer to said interpolator and for transferring said modified parametric data from said interpolator to said computer, and means responsive to a request from one of said machines for effecting a transfer of parametric data defining a desired curve from said computer to said interpolator and for transmitting said component signals to the requesting machine.
 2. In a system as defined in claim 1 wherein said interpolator comprises means for terminating the generation of said component signals when the line segment defined thereby is of a preselected length.
 3. In a system as defined in claim 2 wherein said interpolator comprises first and second register means for accumulating first and second incremental changes along respective ones of said orthogonal axes during interpolation and third means responsive to the incrementation of said first and second register means for determining the length of the line segment represented by said component signals and for limiting the length thereof of said preselected values.
 4. In a system as defined in claim 1 wherein said storage means of said digital computer stores programs for execution by said machines, said programs including coded commands for controlling various functions of said machines independently of said interpolator and said system includes means for transmitting said coded commands to a machine upon request.
 5. A control system as defined in claim 4 wherein said storage means comprises an active storage and auxiliary memory means, said programs being stored in said auxiliary memory means, said computer including means for transferring portions of a program from said auxiliary memory means to said active storage when the program is requested by a machine, and means responsive to the execution of a portion of a program in said active storage to transfer a subsequent portion of the program to said active storage.
 6. A control system as defined in claim 3 wherein said interpolator comprises a length register for storing a number representing the sum of the squares of the absolute values of the displacements defined by the component signals being derived, and means for decrementing the number in said length register by the value 2(delta A)+ 1 for each incremental change in said first and second register means where delta A is the cumulative displacement for the register means incremented and means for terminating said interpolation when said length register is decremented to zero.
 7. A control system as defined in claim 1 wherein said storage means comprises an active storage and auxiliary memory means for storing programs to be executed by said machines comprising coded parametric data, said computer including means for transferring portions of a program from said auxiliary memory means to said active storage when the program is requested by a machine, and means responsive to the execution of a portion of a program in said active storage to transfer a subsequent portion of the program to said active storage.
 8. In a system for interpolating parametric data defining a curve extending between a beginning point and a terminating point to provide successive sets of component signals representing first and second components with respect to orthogonally rElated axes for defining successive linear segments closely approximating said curve, interpolating means for incrementally deriving the displacements along said axes for said components and registering the cumulative displacements along said axes for said components and means responsive to said cumulative displacements for limiting the length of each of said linear segments comprising means for computing the length of the segment defined by said components and terminating the interpolation when said length is equal to a preselected length. 